3.5 spthin降低采样偏差
library(spocc)
library(spThin)
library(dismo)
library(rgeos)
library(ENMeval)
library(dplyr)
getwd()
run_wallace()
source(system.file('shiny/funcs', 'functions.R', package = 'wallace'))
userOccs.path <- "./yanmo/.csv"
userOccs.csv <- read.csv(userOccs.path, header = TRUE)
occs.dups <- duplicated(userOccs.csv[c('longitude', 'latitude')])
occs <- userOccs.csv[!occs.dups,]
occs <- occs[complete.cases(occs$longitude, occs$latitude), ]
output <- spThin::thin(occs, 'latitude', 'longitude', 'name',
thin.par = 5, reps = 100,
locs.thinned.list.return = TRUE,
write.files = FALSE, verbose = FALSE)
maxThin <- which(sapply(output, nrow) == max(sapply(output, nrow)))
maxThin <- output[[ifelse(length(maxThin) > 1, maxThin[1], maxThin)]]
occs <- occs[as.numeric(rownames(maxThin)),]
write.csv(occs,"./sa.csv")
3.5.2 使用半方差来降低采样密度
library(gstat)
c.variog <- variogram(Chuckwalla ~1, chuck.sp.trn, xlab= "Distance (m)", ylab="Semivariance")
plot(c.variog)
c.variog2 <- variogram(Chuckwalla ~1, chuck.sp.tst, xlab= "Distance (m)", ylab="Semivariance")
plot(c.variog2)
c.variog3 <- variogram(Chuckwalla ~1, chuck.sp.trn,cutoff = 50000)
c.variog3.f <- fit.variogram(c.variog3, vgm(psill = 0.1, "Sph", range = 25000, nugget = 0))
plot(c.variog3, model = c.variog3.f)
library(sp)
data(meuse)
head(meuse)
coordinates(meuse) = ~x+y
variogram(log(zinc)~1, meuse)
variogram(log(zinc)~x+y, meuse)
aa <- variogram(log(zinc)~x+y, meuse, alpha=c(0,45,90,135))
bb <- variogram(log(zinc)~1, meuse, width=90, cutoff=1300)
plot(bb)
variogram(Chuckwalla ~1, k.chuck.trn, cutoff = 50000, xlab= "Distance (m)", ylab="Semivariance")